#  1、列表写在方括号之间，元素用逗号隔开。
# 2、和字符串一样，列表可以被索引和切片。
# 3、列表可以使用 + 操作符进行拼接。
# 4、列表中的元素是可以改变的

list=['abc',1323]
print(list)
a=['asdlj',435,131,"hhdais"]
print(a)
# Python 列表截取可以接收第三个参数，参数作用是截取的步长，以下实例在索引 1 到索引 4 的位置并设置为步长为 2（间隔一个位置）来截取字符串

# 元组（tuple）与列表类似，不同之处在于元组的元素不能修改。元组写在小括号 () 里，元素之间用逗号隔开。
# 元组中的元素类型也可以不相同： 
# tup1 = ()    # 空元组
# tup2 = (20,) # 一个元素，需要在元素后添加逗号

#  Python 中的集合（Set）是一种无序、可变的数据类型，用于存储唯一的元素。

# 集合中的元素不会重复，并且可以进行交集、并集、差集等常见的集合操作。

# 在 Python 中，集合使用大括号 {} 表示，元素之间用逗号 , 分隔。

# 另外，也可以使用 set() 函数创建集合。

# 注意：创建一个空集合必须用 set() 而不是 { }，因为 { } 是用来创建一个空字典。

# 创建格式：

# parame = {value01,value02,...}
# 或者
# set(value)



#!/usr/bin/python3

sites = {'Google', 'Taobao', 'Runoob', 'Facebook', 'Zhihu', 'Baidu'}

print(sites)   # 输出集合，重复的元素被自动去掉

# 成员测试
if 'Runoob' in sites :
    print('Runoob 在集合中')
else :
    print('Runoob 不在集合中')


# set可以进行集合运算
a = set('abracadabra')
b = set('alacazam')

print(a)

print(a - b)     # a 和 b 的差集

print(a | b)     # a 和 b 的并集

print(a & b)     # a 和 b 的交集

print(a ^ b)     # a 和 b 中不同时存在的元素


#  字典（dictionary）是Python中另一个非常有用的内置数据类型。

# 列表是有序的对象集合，字典是无序的对象集合。两者之间的区别在于：字典当中的元素是通过键来存取的，而不是通过偏移存取。

# 字典是一种映射类型，字典用 { } 标识，它是一个无序的 键(key) : 值(value) 的集合。

# 键(key)必须使用不可变类型。

# 在同一个字典中，键(key)必须是唯一的。 

#!/usr/bin/python3

dict = {}
dict['one'] = "1 - 菜鸟教程"
dict[2]     = "2 - 菜鸟工具"

tinydict = {'name': 'runoob','code':1, 'site': 'www.runoob.com'}


print (dict['one'])       # 输出键为 'one' 的值
print (dict[2])           # 输出键为 2 的值
print (tinydict)          # 输出完整的字典
print (tinydict.keys())   # 输出所有键
print (tinydict.values()) # 输出所有值


# 在 Python3 中，bytes 类型表示的是不可变的二进制序列（byte sequence）。

# 与字符串类型不同的是，bytes 类型中的元素是整数值（0 到 255 之间的整数），而不是 Unicode 字符。

# bytes 类型通常用于处理二进制数据，比如图像文件、音频文件、视频文件等等。在网络编程中，也经常使用 bytes 类型来传输二进制数据。

# 创建 bytes 对象的方式有多种，最常见的方式是使用 b 前缀：

# 此外，也可以使用 bytes() 函数将其他类型的对象转换为 bytes 类型。bytes() 函数的第一个参数是要转换的对象，第二个参数是编码方式，如果省略第二个参数，则默认使用 UTF-8 编码：